define(function(){
var touchmove = function(target, up, right, down, left){

    var startX, startY;
        document.getElementById(target).addEventListener('touchstart', function (ev) {
            startX = ev.touches[0].pageX;
            startY = ev.touches[0].pageY;   
        }, false);
        document.getElementById(target).addEventListener('touchend', function (ev) {
            var endX, endY;
            endX = ev.changedTouches[0].pageX;
            endY = ev.changedTouches[0].pageY;
            var direction = GetSlideDirection(startX, startY, endX, endY);
            switch (direction) {
                case 0:
                    alert("没滑动");
                    break;
                case 1:
                    up();
                    alert(this.id);
                    break;
                case 2:
                    down();
                    break;
                case 3:
                    left();
                    break;
                case 4:
                    right();
                    break;
                default:            
            }   
        }, false);


    var GetSlideAngle = function(dx, dy) {
        return Math.atan2(dy, dx) * 180 / Math.PI;
    }
         
        //根据起点和终点返回方向 1：向上，2：向下，3：向左，4：向右,0：未滑动
    var GetSlideDirection = function (startX, startY, endX, endY) {
            var dy = startY - endY;
            var dx = endX - startX;
            var result = 0;
         
            //如果滑动距离太短
            if (Math.abs(dx) < 2 && Math.abs(dy) < 2) {
                return result;
            }
         
            var angle = GetSlideAngle(dx, dy);
            if (angle >= -45 && angle < 45) {
                result = 4;
            } else if (angle >= 45 && angle < 135) {
                result = 1;
            } else if (angle >= -135 && angle < -45) {
                result = 2;
            }
            else if ((angle >= 135 && angle <= 180) || (angle >= -180 && angle < -135)) {
                result = 3;
            }
         
            return result;
        }
}
return touchmove;
})

        